package com.cctv.fmaed.module.redis.memory.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 二维码状态枚举
 *
 * @author heyingcheng
 * @since 2023/8/29
 */
public enum QrCodeStateEnum {

    /**
     * 绑定成功
     */
    BIND_DEVICE(200),
    /**
     * 已扫码
     */
    SCANNED(201),
    /**
     * 用户已确认绑定
     */
    MOBILE_AUTHORIZED(202),
    /**
     * 投屏助手已确认绑定
     */
    ASST_AUTHORIZED(203),
    /**
     * 用户已拒绝绑定
     */
    MOBILE_FORBIDDEN(402),
    /**
     * 投屏助手已拒绝绑定
     */
    ASST_FORBIDDEN(403),
    /**
     * 二维码已失效
     */
    EXPIRED(404),
    /**
     * 二维码不允许访问
     */
    NOT_ALLOWED(405),
    /**
     * 二维码未扫码
     */
    UNSCANNED(408),
    ;

    public final Integer state;

    private static final Map<String, QrCodeStateEnum> MAP = new HashMap<>();

    static {
        QrCodeStateEnum[] values = values();
        for (QrCodeStateEnum value : values) {
            MAP.put(value.state.toString(), value);
        }
    }

    QrCodeStateEnum(Integer state) {
        this.state = state;
    }

    public static Integer stateOf(String stateString) {
        return MAP.getOrDefault(stateString, EXPIRED).state;
    }

}
